package com.ziytek.web.citizen.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ziytek.web.citizen.configuration.db.DDS;
import com.ziytek.web.citizen.constant.DdsConstant;
import com.ziytek.web.citizen.pojo.basic.UserLogin;

/**
 * @author fenghx
 * @version 1.0
 * @className mapperMapper
 * Description:
 * @date 2024/3/18 17:20
 */

public interface LoginMapper extends BaseMapper<UserLogin> {
    /**
     * Description: 用户信息查询
     *
     * @param userName  用户电登录名
     * @param available 是否可用
     * @return UserLogin
     */
    @DDS(DdsConstant.DS_BASIC)
    UserLogin findByUserNameAndAvailableOrderByCreateTimeDesc(String userName, String available);

    /**
     * Description: 用户信息查询
     *
     * @param id  id
     * @return UserLogin
     */
    @DDS(DdsConstant.DS_BASIC)
    UserLogin findById(Long id);

    /**
     * Description: 用户信息新增
     *
     * @param userLogin 用户电登录名
     */
    @DDS(DdsConstant.DS_BASIC)
    void addUser(UserLogin userLogin);

    /**
     * Description: 用户信息新增
     *
     * @param available  available
     * @param updateTime updateTime
     * @param id         id
     */
    @DDS(DdsConstant.DS_BASIC)
    void deleteUser(String available, Long updateTime, Long id);

    /**
     * Description: 用户信息新增
     *
     * @param id         id
     */
    @DDS(DdsConstant.DS_BASIC)
    void deleteUserById(Long id);


    /**
     * Description: 用户信息更新
     *
     * @param id               id
     * @param updateTime       updateTime
     * @param lastLoginInTime  lastLoginInTime
     * @param lastLoginOutTime lastLoginOutTime
     */
    @DDS(DdsConstant.DS_BASIC)
    void updateDataById(Long id, long updateTime, long lastLoginInTime, long lastLoginOutTime);

    /**
     * Description: 查询id
     *
     * @return Long
     */
    @DDS(DdsConstant.DS_BASIC)
    Long queryMaxId();
}